package com.py.androidUtils.task;

import android.os.Handler;
import android.os.Message;

/**
 * 
 * @说明 数据下载线程
 * @作者 LY
 * @文件 TaskThread.java
 * @时间 2015年6月12日 下午1:59:21
 * @版权 Copyright(c) 2014 LY-版权所有
 */
public class TaskThread extends Thread {
	/** 下载单位. */
	public TaskItem item = null;
	/** 下载完成后的消息句柄. */
	private static Handler handler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			TaskItem item = (TaskItem) msg.obj;
			item.listener.update();
		}
	};

	/**
	 * 构造下载线程队列.
	 */
	public TaskThread() {
	}

	/**
	 * 开始一个下载任务.
	 * 
	 * @param item
	 *            下载单位
	 */
	public void execute(TaskItem item) {
		this.item = item;
		item.listener.pre();
		this.start();
	}

	/**
	 * 描述：线程运行.
	 */
	@Override
	public void run() {
		if (item != null) {
			// 定义了回调
			if (item.listener != null) {
				item.listener.get();
			}
		}
	}

	public void update(Object object) {
		// 交由UI线程处理
		Message msg = handler.obtainMessage();
		item.setResult(object);
		msg.obj = item;
		handler.sendMessage(msg);
	}

}
